home *** CD-ROM | disk | FTP | other *** search
/ Hacker's Arsenal - The Cutting Edge of Hacking / Hacker's Arsenal - The Cutting Edge of Hacking.iso / texts / virus / Guide to the Selection of Anti-Virus Tools and Techniques.txt < prev    next >
Text File  |  2001-07-11  |  82KB  |  1,774 lines

  1. NIST Special Publication 800-5
  2.  
  3. Guide to the Selection of Anti-Virus Tools and Techniques 
  4.  
  5. W. T. Polk
  6. L. E. Bassham 
  7.  
  8. Dec. 1992
  9.  
  10. National Institute of Standards and Technology
  11. Computer Security Division 
  12.  
  13.  
  14. Ascii text version:
  15. No references or indices.
  16. Tables at end.
  17. Footnotes in text, following paragragh where they occur.
  18.  
  19. Some references to documents or other sections within the text
  20. may be missing from ascii version!
  21.  
  22.  
  23.  
  24.  
  25.             Abstract
  26.  
  27. Computer viruses continue to pose a threat to the integrity and availability of 
  28. computer systems. This is especially true for users of personal computers.  A 
  29. variety of anti-virus tools are now available to help manage this threat. These 
  30. tools use a wide range of techniques to detect, identify, and remove viruses. 
  31.  
  32. This guide provides criteria for judging the functionality, practicality, and 
  33. convenience of anti-virus tools. It furnishes information which readers can use 
  34. to determine which tools are best suited to target environments, but it does 
  35. not weigh the merits of specific tools. 
  36.  
  37.  
  38.  
  39.  
  40. Table of Contents
  41.  
  42. 1.0 Introduction 
  43.   1.1 Audience and Scope 
  44.   1.2 How to Use This Document 
  45.   1.3 Definitions and Basic Concepts 
  46. 2.0 Functionality 
  47.   2.1 Detection Tools 
  48.     2.1.1 Detection by Static Analysis 
  49.     2.1.2 Detection by Interception 
  50.     2.1.3 Detection of Modification 
  51.   2.2 Identification Tools 
  52.   2.3 Removal Tools 
  53. 3.0 Selection Factors 
  54.   3.1 Accuracy 
  55.     3.1.1 Detection Tools 
  56.     3.1.2 Identification Tools 
  57.     3.1.3 Removal Tools 
  58.   3.2 Ease of Use 
  59.   3.3 Administrative Overhead 
  60.   3.4 System Overhead 
  61. 4.0 Tools and Techniques 
  62.   4.1 Signature Scanning and Algorithmic Detection 
  63.     4.1.1 Functionality
  64.     4.1.2 Selection Factors 
  65.     4.1.3 Summary
  66.   4.2 General Purpose Monitors 
  67.     4.2.1 Functionality
  68.     4.2.2 Selection Factors 
  69.     4.2.3 Summary
  70.   4.3 Access Control Shells 
  71.     4.3.1 Functionality
  72.     4.3.2 Selection Factors 
  73.     4.3.3 Summary
  74.   4.4 Checksums for Change Detection 
  75.     4.4.1 Functionality
  76.     4.4.2 Selection Factors 
  77.     4.4.3 Summary
  78.   4.5 Knowledge-Based Virus Removal Tools 
  79.     4.5.1 Functionality
  80.     4.5.2 Selection Factors 
  81.     4.5.3 Summary
  82.   4.6 Research Efforts 
  83.     4.6.1 Heuristic Binary Analysis 
  84.     4.6.2 Precise Identification Tools 
  85.   4.7 Other Tools 
  86.     4.7.1 System Utilities 
  87.     4.7.2 Inoculation 
  88. 5.0 Selecting Anti-Virus Techniques 
  89.   5.1 Selecting Detection Tools 
  90.     5.1.1 Combining Detection Tools 
  91.   5.2 Identification Tools 
  92.   5.3 Removal Tools 
  93.   5.4 Example Applications of Anti-Virus Tools 
  94.     5.4.1 Average End-User 
  95.     5.4.2 Power Users 
  96.     5.4.3 Constrained User 
  97.     5.4.4 Acceptance Testing 
  98.     5.4.5 Multi-User Systems 
  99.     5.4.6 Network Server 
  100. 6.0  Selecting the Right Tool 
  101.   6.1 Selecting a Scanner 
  102.   6.2 Selecting a General Purpose Monitor 
  103.   6.3 Selecting an Access Control Shell 
  104.   6.4 Selecting a Change Detector 
  105.   6.5 Selecting an Identification Tool 
  106.   6.6 Selecting a Removal Tool 
  107. 7.0 For Additional Information 
  108.  
  109.  
  110.  
  111. 1.0 Introduction 
  112.  
  113. This document provides guidance in the selection of security tools for 
  114. protection against computer viruses. The strengths and limitations of various 
  115. classes of anti-virus tools are discussed, as well as suggestions of 
  116. appropriate applications for these tools. The technical guidance in this 
  117. document is intended to supplement the guidance found in NIST Special 
  118. Publication 500-166, "Computer Viruses and Related Threats: A Management
  119. Guide". 
  120.  
  121. This document concentrates on widely available tools and techniques as well as 
  122. some emerging technologies. It provides general guidance for the selection of 
  123. anti-virus tools, regardless of platform. However, some classes of tools, and 
  124. most actual products, are only available for personal computers. Developers of 
  125. anti-virus tools have focused on personal computers since these systems are 
  126. currently at the greatest risk of infection. 
  127.  
  128. footnote: Certain commercial products are identified in this paper in order to 
  129. adequately specify procedures being described. In no case does such 
  130. identification imply recommendation or endorsement by the National Institute of 
  131. Standards and Technology, nor does it imply that the material identified is 
  132. necessarily the best for the purpose. footnote 
  133.  
  134. 1.1 Audience and Scope 
  135.  
  136. This document is intended primarily for technical personnel selecting 
  137. anti-virus tools for an organization. Additionally, this document is useful for 
  138. personal computer end-users who wish to select appropriate solutions for their 
  139. own system. This document begins with an overview of the types of functionality 
  140. available in anti-virus products and follows with selection criteria which must 
  141. be considered to ensure practicality and convenience. The body of the document 
  142. describes specific classes of anti-virus tools (e.g., scanners) in terms of the 
  143. selection criteria. This document closes with a summary comparing the different 
  144. classes of tools and suggests possible applications. 
  145.  
  146. The guidance presented in this document is general in nature. The document 
  147. makes no attempt to address specific computer systems or anti-virus tools. 
  148. However, at this time the computer virus problem is most pressing in the 
  149. personal computer arena. Consequently, most types of anti-virus tools are 
  150. available as personal computer products. As a result, some information will 
  151. address that specific environment. 
  152.  
  153.  
  154.  
  155. 1.2 How to Use This Document 
  156.  
  157. The remainder of this section is devoted to terminology and basic concepts. 
  158.  
  159. Section 2 describes the different types of functionality that are available in 
  160. anti-virus tools. Several different types of detection tools are described, as 
  161. well as identification and removal tools. This information should assist 
  162. readers in identifying the classes of products appropriate for their 
  163. environment. 
  164.  
  165. Section 3 describes some critical selection factors, including accuracy, ease 
  166. of use, and efficiency. The description of each of these factors is dependent 
  167. on the functional class of product in question. These selection factors are 
  168. used to describe product classes in the sections that follow. 
  169.  
  170. Section 4 describes specific classes of tools, such as scanners or checksum 
  171. programs, and the techniques they employ. This section provides the reader with 
  172. detailed information regarding the functionality, accuracy, ease of use and 
  173. efficiency of these classes of tools. 
  174.  
  175. Section 5 presents guidelines for the selection of the most appropriate class 
  176. of anti-virus tools. It begins by outlining the important environmental aspects 
  177. that should be considered. Next, the information from Section 4 is summarized 
  178. and a variety of tables comparing and contrasting the various classes of tools 
  179. are presented. The remainder of the section provides several hypothetical user 
  180. scenarios. A battery of tools is suggested for each application. 
  181.  
  182. Section 6 presents guidelines for the selection of the best tool from within a 
  183. particular class. Important features that may distinguish products from others 
  184. within a particular class are highlighted. 
  185.  
  186. This document will be most useful if read in its entirety. However, the reader 
  187. may wish to skip the details on different tools found in Section 4 on an 
  188. initial reading. Section 5 may help the reader narrow the focus to specific 
  189. classes of tools for a specific environment. Then the reader may return to 
  190. Section 4 for details on those classes of tools. 
  191.  
  192. 1.3 Definitions and Basic Concepts 
  193.  
  194. This section presents informal definitions and basic concepts that will be used 
  195. throughout the document. This is intended to clarify the meaning of certain 
  196. terms which are used inconsistently in the virus field. However, this section 
  197. is not intended as a primer on viruses. Additional background information and 
  198. an extensive "Suggested Reading" list may be found in NIST Special 
  199. Publication 500-166. 
  200.  
  201. A virus is a self-replicating code segment which must be attached to a host 
  202. executable. (1) When the host is executed, the virus code also executes. If
  203. possible, the virus will replicate by attaching a copy of itself to another
  204. executable. The virus may include an additional "payload" that triggers when
  205. specific conditions are met. For example, some viruses display a message on a
  206. particular date. 
  207.  
  208. footnote (1): An executable is an abstraction for programs, command files and 
  209. other objects on a computer system that can be executed. On a DOS PC, for 
  210. example, this would include batch command files, COM files, EXE-format files 
  211. and boot sectors of disks.
  212.  
  213. A Trojan horse is a program that performs a desired task, but also includes 
  214. unexpected (and undesirable) functions. In this respect, a Trojan horse is 
  215. similar to a virus, except a Trojan horse does not replicate. An example of a 
  216. Trojan horse would be an editing program for a multi-user system which has been 
  217. modified to randomly delete one of the user's files each time that program is 
  218. used. The program would perform its normal, expected function (editing), but 
  219. the deletions are unexpected and undesired. A host program that has been 
  220. infected by a virus is often described as a Trojan horse. However, for the 
  221. purposes of this document, the term Trojan horse will exclude virus-infected 
  222. programs. 
  223.  
  224. A worm is a self-replicating program. It is self-contained and does not require 
  225. a host program. The program creates the copy and causes it to execute; no user 
  226. intervention is required. Worms commonly utilize network services to propagate 
  227. to other computer systems. 
  228.  
  229. A variant is a virus that is generated by modifying a known virus. Examples are 
  230. modifications that add functionality or evade detection. The term variant is 
  231. usually applied only when the modifications are minor in nature. An example 
  232. would be changing the trigger date from Friday the 13th to Thursday the 12th. 
  233.  
  234. An overwriting virus will destroy code or data in the host program by replacing 
  235. it with the virus code. It should be noted that most viruses attempt to retain 
  236. the original host program's code and functionality after infection because the 
  237. virus is more likely to be detected and deleted if the program ceases to work. 
  238. A non-overwriting virus is designed to append the virus code to the physical 
  239. end of the program or to move the original code to another location. 
  240.  
  241. A self-recognition procedure is a technique whereby a virus determines whether 
  242. or not an executable is already infected. The procedure usually involves 
  243. searching for a particular value at a known position in the executable. 
  244. Self-recognition is required if the virus is to avoid multiple infections of a 
  245. single executable. Multiple infections cause excessive growth in size of 
  246. infected executables and corresponding excessive storage space, contributing to 
  247. the detection of the virus. 
  248.  
  249. A resident virus installs itself as part of the operating system upon execution 
  250. of an infected host program. The virus will remain resident until the system is 
  251. shut down. Once installed in memory, a resident virus is available to infect 
  252. all suitable hosts that are accessed. 
  253.  
  254. A stealth virus is a resident virus that attempts to evade detection by 
  255. concealing its presence in infected files. To achieve this, the virus 
  256. intercepts system calls which examine the contents or attributes of infected 
  257. files. The results of these calls must be altered to correspond to the file's 
  258. original state. For example, a stealth virus might remove the virus code from 
  259. an executable when it is read (rather than executed) so that an anti-virus 
  260. software package will examine the original, uninfected host program. 
  261.  
  262. An encrypted virus has two parts: a small decryptor and the encrypted virus 
  263. body. When the virus is executed, the decryptor will execute first and decrypt 
  264. the virus body. Then the virus body can execute, replicating or becoming 
  265. resident. The virus body will include an encryptor to apply during replication. 
  266. A variably encrypted virus will use different encryption keys or encryption 
  267. algorithms. Encrypted viruses are more difficult to disassemble and study since 
  268. the researcher must decrypt the code. 
  269.  
  270. A polymorphic virus creates copies during replication that are functionally 
  271. equivalent but have distinctly different byte streams. To achieve this, the 
  272. virus may randomly insert superfluous instructions, interchange the order of 
  273. independent instructions, or choose from a number of different encryption 
  274. schemes. This variable quality makes the virus difficult to locate, identify, 
  275. or remove. 
  276.  
  277. A research virus is one that has been written, but has never been unleashed on 
  278. the public. These include the samples that have been sent to researchers by 
  279. virus writers. Viruses that have been seen outside the research community are 
  280. termed "in the wild." 
  281.  
  282. It is difficult to determine how many viruses exist. Polymorphic viruses and 
  283. minor variants complicate the equation. Researchers often cannot agree whether 
  284. two infected samples are infected with the same virus or different viruses. We 
  285. will consider two viruses to be different if they could not have evolved from 
  286. the same sample without a hardware error or human modification. 
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293. 2.0 Functionality 
  294.  
  295. Anti-virus tools perform three basic functions. Tools may be be used to detect, 
  296. identify, or remove viruses.(2) Detection tools perform proactive detection,
  297. active detection, or reactive detection. That is, they detect a virus before it
  298. executes, during execution, or after execution. Identification and removal
  299. tools are more straightforward in their application; neither is of use until a
  300. virus has been detected. 
  301.  
  302. footnote (2): A few tools are designed to prevent infection by one or more
  303. viruses. The discussion of these tools is limited to Section 4.7.2, Inoculation,
  304. due to their limited application.
  305.  
  306. 2.1 Detection Tools 
  307.  
  308. Detection tools detect the existence of a virus on a system. These tools 
  309. perform detection at a variety of points in the system. The virus may be 
  310. actively executing, residing in memory, or stored in executable code. The virus 
  311. may be detected before execution, during execution, or after execution and 
  312. replication. 
  313.  
  314. 2.1.1 Detection by Static Analysis 
  315.  
  316. Static analysis detection tools examine executables without executing them. 
  317. Such tools can be used in proactive or reactive fashion. They can be used to 
  318. detect infected code before it is introduced to a system by testing all 
  319. diskettes before installing software on a system. They can also be used in a 
  320. more reactive fashion, testing a system on a regular basis to detect any 
  321. viruses acquired between detection phases. 
  322.  
  323. 2.1.2 Detection by Interception 
  324.  
  325. To propagate, a virus must infect other host programs. Some detection tools are 
  326. intended to intercept attempts to perform such "illicit" activities. These 
  327. tools halt the execution of virus-infected programs as the virus attempts to 
  328. replicate or become resident. Note that the virus has been introduced to the 
  329. system and attempts to replicate before detection can occur. 
  330.  
  331.  
  332.  
  333. 2.1.3 Detection of Modification 
  334.  
  335. All viruses cause modification of executables in their replication process. As 
  336. a result, the presence of viruses can also be detected by searching for the 
  337. unexpected modification of executables. This process is sometimes called 
  338. integrity checking . 
  339.  
  340. Detection of modification may also identify other security problems, such as 
  341. the installation of Trojan horses. Note that this type of detection tool works 
  342. only after infected executables have been introduced to the system and the 
  343. virus has replicated. 
  344.  
  345. 2.2 Identification Tools 
  346.  
  347. Identification tools are used to identify which virus has infected a particular 
  348. executable. This allows the user to obtain additional information about the 
  349. virus. This is a useful practice, since it may provide clues about other types 
  350. of damage incurred and appropriate clean-up procedures. 
  351.  
  352. 2.3 Removal Tools 
  353.  
  354. In many cases, once a virus has been detected it is found on numerous systems 
  355. or in numerous executables on a single system. Recovery from original diskettes 
  356. or clean backups can be a tedious process. Removal tools attempt to efficiently 
  357. restore the system to its uninfected state by removing the virus code from the 
  358. infected executable. 
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365. 3.0 Selection Factors 
  366.  
  367. Once the functional requirements have been determined, there will still be a 
  368. large assortment of tools to choose from. There are several important selection 
  369. factors that should be considered to ensure that the right tool is selected for 
  370. a particular environment. 
  371.  
  372. There are four critical selection factors: Accuracy, Ease of Use, 
  373. Administrative Overhead and System Overhead. Accuracy describes the tool's 
  374. relative success rate and the types of errors it can make. Ease of use 
  375. describes the typical user's ability to install and execute the tool and 
  376. interpret the results. Administrative overhead is the measure of technical 
  377. support and distribution effort required. System overhead describes the tool's 
  378. impact on system performance. These factors are introduced below. In depth 
  379. discussions of these factors are in subsequent subsections. 
  380.  
  381. Accuracy is the most important of the selection factors. Errors in detecting, 
  382. identifying or removing viruses undermine user confidence in a tool, and often 
  383. cause users to disregard virus warnings. Errors will at best result in loss of 
  384. time; at worst they will result in damage to data and programs. 
  385.  
  386. Ease of use is concerned with matching the background and abilities of the 
  387. system's user to the appropriate software. This is also important since 
  388. computer users vary greatly in technical skills and ability. 
  389.  
  390. Administrative overhead can be very important as well. Distribution of updates 
  391. can be a time-consuming task in a large organization. Certain tools require 
  392. maintenance by the technical support staff rather than the end-user. End-users 
  393. will require assistance to interpret results from some tools; this can place a 
  394. large burden on an organization's support staff. It is important to choose 
  395. tools that your organization has the resources to support. 
  396.  
  397. System overhead is inconsequential from a strict security point of view. 
  398. Accurate detection, identification or removal of the virus is the important 
  399. point. However, most of these tools are intended for end-users. If a tool is 
  400. slow or causes other applications to stop working, end-users will disable it. 
  401. Thus, attention needs to be paid to the tool's ability to work quickly and to 
  402. co-exist with other applications on the computer. 
  403.  
  404. 3.1 Accuracy 
  405.  
  406. Accuracy is extremely important in the use of all anti-virus tools. 
  407. Unfortunately, all anti-virus tools make errors. It is the type of errors and 
  408. frequency with which they occur that is important. Different errors may be 
  409. crucial in different user scenarios. 
  410.  
  411. Computer users are distributed over a wide spectrum of system knowledge. For 
  412. those users with the system knowledge to independently verify the information 
  413. supplied by an anti-virus tool, accuracy is not as great a concern. 
  414. Unfortunately, many computer users are not prepared for such actions. For such 
  415. users, a virus infection is somewhat frightening and very confusing. If the 
  416. anti-virus tool is supplying false information, this will make a bad situation 
  417. worse. For these users, the overall error rate is most critical. 
  418.  
  419. 3.1.1 Detection Tools 
  420.  
  421. Detection tools are expected to identify all executables on a system that have 
  422. been infected by a virus. This task is complicated by the release of new 
  423. viruses and the continuing invention of new infection techniques. As a result, 
  424. the detection process can result in errors of two types: false positives and 
  425. false negatives. 
  426.  
  427. When a detection tool identifies an uninfected executable as host to a virus, 
  428. this is known as a false positive (this is also known as a Type I error.) In 
  429. such cases, a user will waste time and effort in unnecessary cleanup 
  430. procedures. A user may replace the executable with the original only to find 
  431. that the executable continues to be identified as infected. This will confuse 
  432. the user and result in a loss of confidence in either the detection procedures 
  433. or the tool vendor. If a user attempts to "disinfect" the executable, the 
  434. removal program may abort without changing the executable or will irreparably 
  435. damage the program by removing useful code. Either scenario results once more 
  436. in confusion for the user and lost confidence. 
  437.  
  438. When a detection tool examines an infected executable and incorrectly proclaims 
  439. it to be free of viruses, this is known as a false negative, or Type II error. 
  440. The detection tool has failed to alert the user to the problem. This kind of 
  441. error leads to a false sense of security for the user and potential disaster. 
  442.  
  443. 3.1.2 Identification Tools 
  444.  
  445. Identification tools identify which virus has infected a particular executable. 
  446. Defining failure in this process turns out to be easier than success. The 
  447. identification tool has failed if it cannot assign a name to the virus or 
  448. assigns the wrong name to the virus. 
  449.  
  450. Determining if a tool has correctly named a virus should be a simple task, but 
  451. in fact it is not. There is disagreement even within the anti-virus research 
  452. community as to what constitutes "different" viruses. As a result, the 
  453. community has been unable to agree on the number of existing viruses, and the 
  454. names attached to them have only vague significance. This leads to a question 
  455. of precision. 
  456.  
  457. As an example, consider two PC virus identification tools. The first tool 
  458. considers the set of PC viruses as 350 distinct viruses. The second considers 
  459. the same set to have 900 members. This occurs because the first tool groups a 
  460. large number of variants under a single name. The second tool will name viruses 
  461. with greater precision (i.e., viruses grouped together by the first tool are 
  462. uniquely named by the second). 
  463.  
  464. Such precision problems can occur even if the vendor attempts to name with high 
  465. precision. A tool may misidentify a virus as another variant of that virus for 
  466. a variety of reasons. The variant may be new, or analysis of samples may have 
  467. been incomplete. The loss of precision occurs for different reasons, but the 
  468. results are no different from the previous example. Any "successful" naming 
  469. of a virus must be considered along with the degree of precision. 
  470.  
  471. 3.1.3 Removal Tools 
  472.  
  473. Removal tools attempt to restore the infected executables to their uninfected 
  474. state. Removal is successful if the executable, after disinfection, matches the 
  475. executable before infection on a byte-for-byte basis. The removal process can 
  476. also produce two types of failures: hard failure and soft failure. 
  477.  
  478. A hard failure occurs if the disinfected program will no longer execute or the 
  479. removal program terminates without removing the virus. Such a severe failure 
  480. will be obvious to detect and can occur for a variety of reasons. Executables 
  481. infected by overwriting viruses cannot be recovered in an automated fashion; 
  482. too much information has been lost. Hard failures also occur if the removal 
  483. program attempts to remove a different virus than the actual infector. 
  484.  
  485. Removal results in a soft failure if the process produces an executable, which 
  486. is slightly modified from its original form, that can still execute. This 
  487. modified executable may never have any problems, but the user cannot be certain 
  488. of that. The soft failure is more insidious, since it cannot be detected by the 
  489. user without performing an integrity check. 
  490.  
  491. 3.2 Ease of Use 
  492.  
  493. This factor focuses on the level of difficulty presented to the end-user in 
  494. using the system with anti-virus tools installed. This is intended to gauge the 
  495. difficulty for the system user to utilize and correctly interpret the feedback 
  496. received from the tool. This also measures the increased difficulty (if any) in 
  497. fulfilling the end-user's job requirements. 
  498.  
  499. Ease of Use is the combination of utilization and interpretation of results. 
  500. This is a function of tool design and quality of documentation. Some classes of 
  501. tools are inherently more difficult to use. For example, installation of the 
  502. hardware component of a tool requires greater knowledge of the current hardware 
  503. configuration than a comparable software-only tool. 
  504.  
  505. 3.3 Administrative Overhead 
  506.  
  507. This factor focuses on the difficulty of administration of anti-virus tools. It 
  508. is intended to gauge the workload imposed upon the technical support team in an 
  509. organization. 
  510.  
  511. This factor considers difficulty of installation, update requirements, and 
  512. support levels required by end-users. These functions are often the 
  513. responsibility of technical support staff or system administrators rather than 
  514. the end-user. Note that an end-user without technical support must perform all 
  515. of these functions himself. 
  516.  
  517. 3.4 System Overhead 
  518.  
  519. System overhead measures the overall impact of the tool upon system 
  520. performance. The relevant factors will be the raw speed of the tool and the 
  521. procedures required for effective use. That is, a program that is executed 
  522. every week will have a lower overall impact than a program that runs in the 
  523. background at all times. 
  524.  
  525. 4.0 Tools and Techniques 
  526.  
  527. There is a wide variety of tools and techniques which can be applied to the 
  528. anti-virus effort. This section will address the following anti-virus 
  529. techniques: 
  530.  
  531.     o signature scanning and algorithmic detection
  532.     o general purpose monitors  
  533.     o access control shells
  534.     o checksums  for change detection
  535.     o knowledge-based removal tools
  536.     o research efforts
  537.         - heuristic binary analysis
  538.         - precise identification
  539.     o other tools
  540.         - system utilities as removal tools
  541.         - inoculation      
  542.  
  543.  
  544.  
  545. For detection of viruses, there are five classes of techniques: signature 
  546. scanning and algorithmic detection; general purpose monitors; access control 
  547. shells; checksums for change detection; and heuristic binary analysis. For 
  548. identification of viruses, there are two techniques: scanning and algorithmic 
  549. detection; and precise identification tools. Finally, removal tools are 
  550. addressed. Removal tools come in three forms: general system utilities, 
  551. single-virus disinfectors, and general disinfecting programs. 
  552.  
  553. 4.1 Signature Scanning and Algorithmic Detection 
  554.  
  555. A common class of anti-virus tools employs the complementary techniques of 
  556. signature scanning and algorithmic detection. This class of tools is known as 
  557. scanners , which are static analysis detection tools (i.e., they help detect 
  558. the presence of a virus). Scanners also perform a more limited role as 
  559. identification tools (i.e., they help determine the specific virus detected). 
  560. They are primarily used to detect if an executable contains virus code, but 
  561. they can also be used to detect resident viruses by scanning memory instead of 
  562. executables. 
  563.  
  564. They may be employed proactively or reactively. Proactive application of 
  565. scanners is achieved by scanning all executables introduced to the system. 
  566. Reactive application requires scanning the system at regular intervals (e.g., 
  567. weekly or monthly). 
  568.  
  569. 4.1.1 Functionality
  570.  
  571. Scanners are limited intrinsically to the detection of known viruses. However, 
  572. as a side effect of the basic technique, some new variants may also be 
  573. detected. They are also identification tools, although the methodology is 
  574. imprecise. 
  575.  
  576. Scanners examine executables (e.g., .EXE or .COM files on a DOS system) for 
  577. indications of infection by known viruses. Detection of a virus produces a 
  578. warning message. The warning message will identify the executable and name the 
  579. virus or virus family with which it is infected. Detection is usually performed 
  580. by signature matching; special cases may be checked by algorithmic methods. 
  581.  
  582. In signature scanning an executable is searched for selected binary code 
  583. sequences, called a virus signature, which are unique to a particular virus, or 
  584. a family of viruses. The virus signatures are generated by examining samples of 
  585. the virus. Additionally, signature strings often contain wild cards to allow 
  586. for maximum flexibility. 
  587.  
  588. Single-point scanners add the concept of relative position to the virus 
  589. signature. Here the code sequence is expected at a particular position within 
  590. the file. It may not even be detected if the position is wrong. By combining 
  591. relative position with the signature string, the chances of false positives is 
  592. greatly reduced. As a result, these scanners can be more accurate than blind 
  593. scanning without position. 
  594.  
  595. Polymorphic viruses , such as those derived from the MtE (mutation engine)
  596. [Sku92] , do not have fixed signatures. These viruses are self-modifying or
  597. variably encrypted. While some scanners use multiple signatures to describe
  598. possible infections by these viruses, algorithmic detection is a more powerful
  599. and more comprehensive approach for these difficult viruses. 
  600.  
  601. 4.1.2 Selection Factors 
  602.  
  603. Accuracy 
  604.  
  605. Scanners are very reliable for identifying infections of viruses that have been 
  606. around for some time. The vendor has had sufficient time to select a good 
  607. signature or develop a detection algorithm for these well-known viruses. For 
  608. such viruses, a detection failure is unlikely with a scanner. An up-to-date 
  609. scanner tool should detect and to some extent identify any virus you are likely 
  610. to encounter. Scanners have other problems, though. In the detection process, 
  611. both false positives and false negatives can occur. 
  612.  
  613. False positives occur when an uninfected executable includes a byte string 
  614. matching a virus signature in the scanner's database. Scanner developers test 
  615. their signatures against libraries of commonly-used, uninfected software to 
  616. reduce false positives. For additional assurance, some developers perform 
  617. statistical analysis of the likelihood of code sequences appearing in 
  618. legitimate programs. Still, it is impossible to rule out false positives. 
  619. Signatures are simply program segments; therefore, the code could appear in an 
  620. uninfected program. 
  621.  
  622. False negatives occur when an infected executable is encountered but no pattern 
  623. match is detected. This usually results from procedural problems; if a stealth 
  624. virus is memory-resident at the time the scanner executes, the virus may hide 
  625. itself. False negatives can also occur when the system has been infected by a 
  626. virus that was unknown at the time the scanner was built. 
  627.  
  628. Scanners are also prone to misidentification or may lack precision in naming. 
  629. Misidentification will usually occur when a new variant of an older virus is 
  630. encountered. As an example, a scanner may proclaim that Jerusalem-B has been 
  631. detected, when in fact the Jerusalem-Groen Links virus is present. This can 
  632. occur because these viruses are both Jerusalem variants and share much of their 
  633. code. Another scanner might simply declare "Jerusalem variant found in 
  634. filename." This is accurate, but rather imprecise. 
  635.  
  636. Ease of Use 
  637.  
  638. Scanners are very easy to use in general. You simply execute the scanner and it 
  639. provides concise results. The scanner may have a few options describing which 
  640. disk, files, or directories to scan, but the user does not have to be a 
  641. computer expert to select the right parameters or comprehend the results. 
  642.  
  643. Administrative Overhead 
  644.  
  645. New viruses are discovered every week. As a result, virus scanners are 
  646. immediately out of date. If an organization distributes scanners to its users 
  647. for virus detection, procedures must be devised for distribution of updates. A 
  648. scanner for a DOS PC that is more than a few months old will not detect most 
  649. newly developed viruses. (It may detect, but misidentify, some new variants.)  
  650. Timely updates are crucial to the effectiveness of any scanner-based anti-virus 
  651. solution. This can present a distribution problem for a large organization. 
  652.  
  653. Installation is generally simple enough for any user to perform. Interpreting 
  654. the results is very simple when viruses are correctly identified. Handling 
  655. false positives will usually require some assistance from technical support. 
  656. This level of support may be available from the vendor. 
  657.  
  658. Efficiency 
  659.  
  660. Scanners are very efficient. There is a large body of knowledge about searching 
  661. algorithms, so the typical scanner executes very rapidly. Proactive application 
  662. will generally result in higher system overhead. 
  663.  
  664. 4.1.3 Summary
  665.  
  666. Scanners are extremely effective at detecting known viruses. Scanners 
  667. are not intended to detect new viruses (i.e., any virus discovered after the 
  668. program was released) and any such detection will result in misidentification. 
  669. Scanners enjoy an especially high level of user acceptance because they name 
  670. the virus or virus family. However, this can be undermined by the occurrence of 
  671. false positives. 
  672.  
  673. The strength of a scanner is highly dependent upon the quality and timeliness 
  674. of the signature database. For viruses requiring algorithmic methods, the 
  675. quality of the algorithms used will be crucial. 
  676.  
  677. The major strengths of scanners are: 
  678.  
  679.  Up-to-date scanners can be used to reliably detect more than 95 percent 
  680. of all virus infections at any given time. Scanners identify both the infected 
  681. executable and the virus that has infected it. This can speed the recovery 
  682. process. Scanners are an established technology, utilizing highly efficient 
  683. algorithms. Effective use of scanners usually does not require any special 
  684. knowledge of the computer system. 
  685.  
  686.  
  687.  
  688. The major limitations of scanners are: 
  689.  
  690.  A scanners only looks for viruses that were known at the time its 
  691. database of signatures was developed. As a result, scanners are prone to false 
  692. negatives. The user interprets "No virus detected" as "No virus exists.'' 
  693. These are not equivalent statements. Scanners must be updated regularly to 
  694. remain effective. Distribution of updates can be a difficult and time-consuming 
  695. process. Scanners do not perform precise identification. As a result, they are 
  696. prone to false positives and misidentification. 
  697.  
  698.  
  699.  
  700. 4.2 General Purpose Monitors 
  701.  
  702. General purpose monitors protect a system from the replication of viruses or 
  703. execution of the payload of Trojan horses by actively intercepting malicious 
  704. actions. 
  705.  
  706. 4.2.1 Functionality
  707.  
  708. Monitoring programs are active tools for the real-time detection of viruses and 
  709. Trojan horses. These tools are intended to intervene or sound an alarm every 
  710. time a software package performs some suspicious action considered to be 
  711. virus-like or otherwise malicious behavior. However, since a virus is a code 
  712. stream, there is a very real possibility that legitimate programs will perform 
  713. the same actions, causing the alarms to sound. 
  714.  
  715. The designer of such a system begins with a model of "malicious" behavior, 
  716. then builds modules which intercept and halt attempts to perform those actions. 
  717. Those modules operate as a part of the operating system. 
  718.  
  719. 4.2.2 Selection Factors 
  720.  
  721. Accuracy 
  722.  
  723. A monitoring program assumes that viruses perform actions that are in its model 
  724. of suspicious behavior and in a way that it can detect. These are not always 
  725. valid assumptions. New viruses may utilize new methods which may fall outside 
  726. of the model. Such a virus would not be detected by the monitoring program. 
  727.  
  728. The techniques used by monitoring tools to detect virus-like behavior are also 
  729. not fool-proof. Personal computers lack memory protection, so a program can 
  730. usually circumvent any control feature of the operating system. As a part of 
  731. the operating system, monitoring programs are vulnerable to this as well. There 
  732. are some viruses which evade or turn off monitoring programs. 
  733.  
  734. Finally, legitimate programs may perform actions that the monitor deems 
  735. suspicious (e.g., self-modifying programs). 
  736.  
  737. Ease of Use 
  738.  
  739. Monitoring software is not appropriate for the average user. The monitor may be 
  740. difficult to configure properly. The rate of false alarms can be high, 
  741. particularly false positives, if the configuration is not optimal. 
  742.  
  743. The average user may not be able to determine that program A should modify 
  744. files, but program B should not. The high rate of false alarms can discourage 
  745. such a user. At worst, the monitor will be turned off or ignored altogether. 
  746.  
  747.  
  748.  
  749. Administrative Overhead 
  750.  
  751. Monitoring programs can impose a fairly heavy administrative workload. They 
  752. impose a moderate degree of overhead at installation time; this is especially 
  753. true if several different systems are to be protected. The greatest amount of 
  754. overhead will probably result from false positives, though. This will vary 
  755. greatly according to the users' level of expertise. 
  756.  
  757. On the other hand, the monitoring software does not have to be updated 
  758. frequently. It is not virus-specific, so it will not require updating until new 
  759. virus techniques are devised. (It is still important to remain up-to-date; each 
  760. time a new class of virus technology is developed, a number of variations 
  761. emerge.) 
  762.  
  763. Efficiency 
  764.  
  765. Monitoring packages are integrated with the operating system so that additional 
  766. security procedures are performed. This implies some amount of overhead when 
  767. any program is executed. The overhead is usually minimal, though. 
  768.  
  769. 4.2.3 Summary
  770.  
  771. Monitoring software may be difficult to use but may detect some new 
  772. viruses that scanning does not detect, especially if they do not use new 
  773. techniques. 
  774.  
  775. These monitors produce a high rate of false positives. The users of these 
  776. programs should be equipped to sort out these false positives on their own. 
  777. Otherwise, the support staff will be severely taxed. 
  778.  
  779. Monitors can also produce false negatives if the virus doesn't perform any 
  780. activities the monitor deems suspicious. Worse yet, some viruses have succeeded 
  781. in attacking monitored systems by turning off the monitors themselves. 
  782.  
  783. 4.3 Access Control Shells 
  784.  
  785. Access control shells function as part of the operating system, much like  
  786. monitoring tools. Rather than monitoring for virus-like behavior, the shell 
  787. attempts to enforce an access control policy for the system. This policy is 
  788. described in terms of programs and the data files they may access. The access 
  789. control shell will sound an alarm every time a user attempts to access or 
  790. modify a file with an unauthorized software package. 
  791.  
  792. 4.3.1 Functionality
  793.  
  794. To perform this process, the shell must have access to identification and 
  795. authentication information. If the system does not provide that information, 
  796. the access control shell may include it. The access control shell may also 
  797. include encryption tools. These tools can be used to ensure that a user does 
  798. not reboot from another version of the operating system to circumvent the 
  799. controls. Note that may of these tools require additional hardware to 
  800. accomplish these functions. 
  801.  
  802. Access control shells are policy enforcement tools. As a side benefit, they can 
  803. perform real-time detection of viruses and Trojan horses. The administrator of 
  804. such a system begins with a description of authorized system use, then converts 
  805. that description into a set of critical files and the programs which may be 
  806. used to modify them. The administrator must also select the files which require 
  807. encryption. 
  808.  
  809. For instance, a shipping clerk might be authorized to access the inventory 
  810. database with a particular program. However, that same clerk may not be allowed 
  811. to access the database directly with the database management software. The 
  812. clerk may not be authorized to access the audit records generated by the 
  813. trusted application with any program. The administrator would supply 
  814. appropriate access control statements as input to the monitor and might also 
  815. encrypt the database. 
  816.  
  817. 4.3.2 Selection Factors 
  818.  
  819. Accuracy 
  820.  
  821. Access control shells, like monitoring tools, depend upon the virus or Trojan 
  822. horse working in an expected manner. On personal computer systems, this is not 
  823. always a valid assumption. If the virus uses methods that the access control 
  824. shell does not monitor, the monitor will produce false negatives. 
  825.  
  826. Even with the access control shell, a well-behaved virus can modify any program 
  827. that its host program is authorized to modify. To reduce the overhead, many 
  828. programs will not be specifically constrained. This will allow a virus to 
  829. replicate and is another source of false negatives. 
  830.  
  831. False positives can also occur with access control shells. The system 
  832. administrator must have sufficient familiarity with the software to authorize 
  833. access to every file the software needs. If not, legitimate accesses will cause 
  834. false alarms. If the system is stable, such false positives should not occur 
  835. after an initial debugging period. 
  836.  
  837. Ease of Use 
  838.  
  839. These tools are intended for highly constrained environments. They usually are 
  840. not appropriate for the average user at home. They can also place a great deal 
  841. of overhead on system administrators. The access control tables must be rebuilt 
  842. each time software or hardware is added to a system, job descriptions are 
  843. altered, or security policies are modified. If the organization tends to be 
  844. dynamic, such a tool will be very difficult to maintain. Organizations with 
  845. well-defined security policies and consistent operations may find maintenance 
  846. quite tolerable. 
  847.  
  848. This software is easy for users, though. They simply log in and execute 
  849. whatever programs they require against the required data. If the access control 
  850. shell prevents the operation, they must go through the administrator to obtain 
  851. additional privileges. 
  852.  
  853. Efficiency 
  854.  
  855. An access control shell modifies the operating system so that additional 
  856. security procedures are performed. This implies some amount of overhead when 
  857. any program is executed. That overhead may be substantial if large amounts of 
  858. data must be decrypted and re-encrypted upon each access. 
  859.  
  860. Administrative Overhead 
  861.  
  862. An access control shell should not require frequent updates. The software is 
  863. not specific to any particular threat, so the system will not require updates 
  864. until new techniques are devised for malicious code. On the other hand, the 
  865. access control tables which drive the software may require frequent updates. 
  866.  
  867. 4.3.3 Summary
  868.  
  869. Access control shells may be difficult to administer, but are 
  870. relatively easy for the end-user. This type of tool is primarily designed for 
  871. policy enforcement, but can also detect the replication of a virus or 
  872. activation of a Trojan horse. 
  873.  
  874. The tool may incur high overhead processing costs or be expensive due to 
  875. hardware components. Both false positives and false negatives may occur. False 
  876. positives will occur when the access tables do not accurately reflect system 
  877. processing requirements. False negatives will occur when virus replication does 
  878. not conflict with the user's access table entries. 
  879.  
  880. 4.4 Checksums for Change Detection 
  881.  
  882. Change detection is a powerful technique for the detection of viruses and 
  883. Trojan horses. Change detection works on the theory that executables are static 
  884. objects; therefore, modification of an executable implies a possible virus 
  885. infection. The theory has a basic flaw: some executables are self-modifying. 
  886. Additionally, in a software development environment, executables may be 
  887. modified by recompilation. These are two examples where checksumming may be an 
  888. inappropriate solution to the virus problem. 
  889.  
  890. 4.4.1 Functionality
  891.  
  892. Change detection programs generally use an executable as the input to a 
  893. mathematical function, producing a checksum. The change detection program is 
  894. executed once on the (theoretically) clean system to provide a baseline(3)
  895. for testing. During subsequent executions, the program compares the computed
  896. checksum with the baseline checksum. A change in the checksum indicates a
  897. modification of the executable. 
  898.  
  899. footnote (3): The original file names and their corresponding checksums.
  900.  
  901. Change detection tools are reactive virus detection tools. They can be used to 
  902. detect any virus, since they look for modifications in executables. This is a 
  903. requirement for any virus to replicate. As long as the change detector reviews 
  904. every executable in its entirety on the system and is used in a proper manner, 
  905. a virus cannot escape detection. 
  906.  
  907. Change detection tools employ two basic mathematical techniques: Cyclic 
  908. Redundancy Checks (CRC) and cryptographic checksums . 
  909.  
  910. CRC-Codings 
  911.  
  912. CRC checksums are commonly used to verify integrity of packets in networks and 
  913. other types of communications between computers. They are fairly efficient and 
  914. well understood. CRC-based checksums are not extremely secure; they are based 
  915. on a known set of algorithms. Therefore they can be broken (the particular 
  916. algorithm can be guessed) by a program if it can find the checksum for a file. 
  917.  
  918. CRC checksum tools, like all change detection tools, can only detect that a 
  919. virus has replicated. Additionally, the executable must be appear in the 
  920. baseline. 
  921.  
  922. Cryptographic Checksums 
  923.  
  924. Cryptographic checksums are obtained by applying cryptographic algorithms to 
  925. the data. Both public and private key algorithms can be used. In general, 
  926. private key algorithms are used for efficiency. These techniques are sometimes 
  927. used in conjunction with two other procedures to decrease system overhead. 
  928. These techniques are message digesting and hashing.(4)
  929.  
  930. footnote (4): Discussion of cryptographic terminology is beyond the scope of
  931. this document. Please see [Sim92].
  932.  
  933. In Message Digesting , hashing is used in conjunction with cryptographic 
  934. checksums. The hash function, which is very fast, is applied directly to the 
  935. executable. The result is much smaller than the original data. The checksum is 
  936. computed by applying the cryptographic function to the hash result. The final 
  937. result approaches the cryptographic checksum for security, but is much more 
  938. efficient. 
  939.  
  940. 4.4.2 Selection Factors 
  941.  
  942. Accuracy 
  943.  
  944. Properly implemented and used, change detection programs should detect every 
  945. virus. That is, there are no false negatives with change detection. Change 
  946. detection can result in high numbers of false positives, however. Programs tend 
  947. to store configuration information in files containing executable code. If 
  948. these files are checksummed, as they should be, a change in configuration will 
  949. trigger the change detector. Additionally, the system must be virus-free when 
  950. the checksums are calculated; resident viruses may fool the change detection 
  951. software. 
  952.  
  953.  
  954.  
  955. Ease of Use 
  956.  
  957. Change detection software is more challenging to use than some other anti-virus 
  958. tools. It requires good security procedures and substantial knowledge of the 
  959. computer system. Procedurally, it is important to protect the baseline. The 
  960. checksums should be stored off-line or encrypted. Manipulation of the baseline 
  961. will make the system appear to have been attacked. 
  962.  
  963. Analysis of the results of a checksumming procedure is also more difficult. The 
  964. average user may not be able to determine that one executable is self-modifying 
  965. but another is not. False positives due to self-modifying code can discourage 
  966. such a user, until the output of the change detector is ignored altogether. 
  967.  
  968. Administrative Overhead 
  969.  
  970. Change detection software is easy to install and it requires no updates. The 
  971. baseline must be established by a qualified staff member. This includes the 
  972. initial baseline, as well as changes to the baseline as programs are added to 
  973. the system. Once in operation, a high degree of support can be required for the 
  974. average end-user, however. A qualified staff member must be available to 
  975. determine whether or not a change to a particular executable is due to a virus 
  976. or simply a result of self-modification. 
  977.  
  978. Efficiency 
  979.  
  980. Change detectors do not impose any overhead on general system use. There is, 
  981. however, some storage overhead for the baseline checksums. These are best 
  982. stored off-line with the checksum program. 
  983.  
  984. The calculation of checksums is computationally intensive; the mathematical 
  985. functions must be calculated on at least a portion of the executable. To be 
  986. exhaustive, the function should be calculated on the entire executable. 
  987.  
  988. 4.4.3 Summary
  989.  
  990. If change is detected, there are several possibilities: a virus infection, 
  991. self-modification, recompilation, or modification of the baseline. A 
  992. knowledgeable user is required to determine the specific reason for change. 
  993.  
  994. The primary strength of change detection techniques is the ability to detect 
  995. new viruses and Trojan horses. The limitation of change detection is the need 
  996. for a knowledgeable user to interpret the output. 
  997.  
  998. 4.5 Knowledge-Based Virus Removal Tools 
  999.  
  1000. The primary means of automated removal of virus infection is knowledge-based 
  1001. removal tools. These removal tools attempt to reverse the modifications a virus 
  1002. makes to a file. After analyzing a particular virus to determine its effects on 
  1003. an infected file, a suitable algorithm is developed for disinfecting files. 
  1004. Tools are available which address only a single virus. These single virus 
  1005. disinfectors are usually developed as the result of a particularly virulent 
  1006. outbreak of a virus. Others detectors are general virus removal programs, 
  1007. containing removal algorithms for several viruses. 
  1008.  
  1009. 4.5.1 Functionality
  1010.  
  1011. Knowledge-based removal tools restore an executable to its pre-infection state. 
  1012. All modifications to the original executable must be known in order to 
  1013. accomplish this task. For example, if a file is infected with an overwritting 
  1014. virus, removal is not possible. The information that was overwritten cannot be 
  1015. restored. 
  1016.  
  1017.  
  1018.  
  1019. The most critical piece of information in the removal process is the identity 
  1020. of the virus itself. If the removal program is removing Jerusalem-DC, but the 
  1021. host is infected with Jerusalem-E2, the process could fail. Unfortunately, this 
  1022. information is often unavailable or imprecise. This is why precise 
  1023. identification tools are needed. 
  1024.  
  1025. 4.5.2 Selection Factors 
  1026.  
  1027. Disinfecting software is not very accurate, for a variety of reasons. The error 
  1028. rates are fairly high; however, most are soft errors. This is a result of 
  1029. incomplete information regarding the virus and the lack of quality assurance 
  1030. among virus writers. Additionally, removal techniques tend to fail when a 
  1031. system or file has been infected multiple times (i.e., by the same virus more 
  1032. than once, or by more than one virus). 
  1033.  
  1034. These programs are relatively easy to use and can disinfect large numbers of 
  1035. programs in a very short time. Any system overhead is inconsequential since the 
  1036. system should not be used until the virus is removed. 
  1037.  
  1038. 4.5.3 Summary
  1039.  
  1040. Accurate removal may not be possible. Even if it is theoretically possible, 
  1041. precise identification of the virus is necessary to ensure that the correct 
  1042. removal algorithm is used. 
  1043.  
  1044. Certain viruses (e.g., overwriting viruses) always cause irreparable damage to 
  1045. an executable. Some extraordinarily well-behaved viruses can be disinfected 
  1046. every time. Most viruses fall somewhere in between. Disinfection will often 
  1047. work, but the results are unpredictable. 
  1048.  
  1049. Some executables cannot be recovered to the exact pre-infection state. In such 
  1050. a case, the file length or checksum of the disinfected executable may differ 
  1051. from the pre-infection state. In such a case, it is impossible to predict the 
  1052. behavior of the disinfected program. This is the reason virus researchers 
  1053. generally dislike removal programs and discourage their use. 
  1054.  
  1055. 4.6 Research Efforts 
  1056.  
  1057. The following subsections describe research areas in the anti-virus field. New 
  1058. tools, based on techniques developed in these and other areas, may be available 
  1059. in the near future. 
  1060.  
  1061. 4.6.1 Heuristic Binary Analysis 
  1062.  
  1063. Static analysis detection tools, based upon heuristic binary analysis, are a 
  1064. focus of research at this time. Heuristic binary analysis is a method whereby 
  1065. the analyzer traces through an executable looking for suspicious, virus-like 
  1066. behavior. If the program appears to perform virus-like actions, a warning is 
  1067. displayed. 
  1068.  
  1069. Functionality
  1070.  
  1071. Binary analysis tools examine an executable for virus-like code. If the code 
  1072. utilizes techniques which are common to viruses, but odd for legitimate 
  1073. programs, the executable is flagged as "possibly infected." Examples include 
  1074. self-encrypted code or code that appears to have been appended to an existing 
  1075. program. 
  1076.  
  1077. Selection Factors 
  1078.  
  1079. Both false positives and negatives are sure to result with use of this type of 
  1080. software. False positives occur when an uninfected program uses techniques 
  1081. common to viruses but uncommon in legitimate programs. False negatives will 
  1082. occur when virus code avoids use of those techniques common to viruses. 
  1083.  
  1084. Binary analysis tools are fairly easy to use. The user simply specifies a 
  1085. program or directory to be analyzed. Analyzing the results is more difficult. 
  1086. Sorting out the false positives from real infections may require more knowledge 
  1087. and experience than the average user possesses. 
  1088.  
  1089. Heuristic analysis is more computationally intensive than other static analysis 
  1090. methods. This method would be inappropriate for daily use on a large number of 
  1091. files. It is more appropriate for one-time use on a small number of files, as 
  1092. in acceptance testing. 
  1093.  
  1094. A heuristic analysis program will require updates as new techniques are 
  1095. implemented by virus writers. 
  1096.  
  1097.  
  1098.  
  1099. Summary
  1100.  
  1101. Early examples of this class of tool appear to have fairly high error rates as 
  1102. compared with commercial detection software. As with system monitors, it is 
  1103. difficult to define suspicious in a way that prevents false positives and false 
  1104. negatives. However, these types of tools have been used successfully to 
  1105. identify executables infected by "new" viruses in a few actual outbreaks. 
  1106.  
  1107. Heuristic binary analysis is still experimental in nature. Initial results have 
  1108. been sufficiently encouraging to suggest that software acceptance procedures 
  1109. could include these tools to augment more traditional technology. 
  1110.  
  1111. 4.6.2 Precise Identification Tools 
  1112.  
  1113. Precise identification tools are a means by which viruses are named with a much 
  1114. higher degree of assurance. These tools are intended to augment detection 
  1115. tools. Once a virus has been detected, a precise identification tool would be 
  1116. invoked in order to more accurately identify the virus. 
  1117.  
  1118. Functionality
  1119.  
  1120. Virus scanners, currently the most common virus detection method, generally 
  1121. employ signature scanning to detect and identify viruses. This method, however, 
  1122. can lead to misidentifications. The signature that the scanner matched could 
  1123. appear in more than one variant of the virus. To avoid mis-identification the 
  1124. whole virus must match, not just a subset of the virus (i.e., the signature). 
  1125. It is neither feasible nor desirable for identification software to be 
  1126. distributed containing the code to all viruses it can detect. Therefore, 
  1127. prototype precise identification tools utilize a "virus map" to represent the 
  1128. contents of the virus. The virus map contains checksum values for all constant 
  1129. parts of the virus code. The map skips over sections of the virus that contain 
  1130. variable information such as text or system dependent data values. 
  1131.  
  1132. If the checksums generated by the corresponding portions of the program match, 
  1133. the program is almost certainly infected by the virus corresponding to the map. 
  1134. If none of the maps in the database correspond, the program is infected by a 
  1135. new virus (or is uninfected.) 
  1136.  
  1137. Selection Factors
  1138.  
  1139. The quality of the results produced by a precise identification tool is 
  1140. dependent upon the quality of the virus map database. If that has been done 
  1141. well and kept current, these tools are extremely accurate and precise when 
  1142. identifying known viruses. Conversely, if the virus is new or has no 
  1143. corresponding entry in the database, the precise identification tool should 
  1144. always "fail" to identify the viruses. 
  1145.  
  1146. This type of tool is easy to use. The user simply specifies an executable, and 
  1147. the tool returns a name, if known. The results are straightforward; it is virus 
  1148. "X," or unknown. 
  1149.  
  1150. Precise identification tools are slow due to the intensive nature of the 
  1151. computations. These tools may be used to perform an identification pass after 
  1152. the use of a more efficient detection tool. Such a plan would provide the user 
  1153. with the benefits of precise identification without great overhead. Once a 
  1154. virus has been detected, the user wants to know exactly what virus he has and 
  1155. time is not a significant factor. 
  1156.  
  1157.  
  1158.  
  1159. Summary
  1160.  
  1161. Users want to know more about the virus infecting their systems. Precise 
  1162. identification will help them obtain more complete information and can also 
  1163. facilitate automated removal. 
  1164.  
  1165. Researchers will also wish to use this type of tool. It will allow them to 
  1166. separate samples of known viruses from new ones without performing analysis. 
  1167.  
  1168. 4.7 Other Tools 
  1169.  
  1170. The remaining tools, system utilities and inoculation, are included for 
  1171. completeness. These tools can be used to provide some measure of functionality. 
  1172. In general, however, these tools are weaker than general anti-virus tools. 
  1173.  
  1174. 4.7.1 System Utilities 
  1175.  
  1176. Some viruses can be detected or removed with basic system utilities. (5)
  1177. For example, most DOS boot sector infectors and some Macintosh viruses can be
  1178. removed with system utilities. System utilities can also be used to detect
  1179. viruses by searching for virus signatures. These tools have a rather limited
  1180. focus, though. 
  1181.  
  1182. footnote (5): Two examples of these system utilities are Norton Utilities for
  1183. the PC and ResEdit for the Macintosh.
  1184.  
  1185. Viruses that can be disinfected "by hand" are generally the extremely 
  1186. well-behaved, highly predictable viruses that are well understood. Such viruses 
  1187. are the exception, not the rule. There are many more viruses that cannot be 
  1188. disinfected with these tools. 
  1189.  
  1190. Where possible, disinfection with system utilities will produce dependable 
  1191. results. A reasonable amount of knowledge is required about the computer system 
  1192. and the virus itself, though. This technique can also be very laborious if a 
  1193. large number of systems are infected. 
  1194.  
  1195. System utilities are an inefficient means of detection. Generally, only one 
  1196. signature can be handled at a time. This might be a useful technique if a 
  1197. specific virus is to be detected. 
  1198.  
  1199.  
  1200.  
  1201. Summary
  1202.  
  1203. Accurate removal by system utilities is frequently impossible. Certain classes 
  1204. of viruses (e.g., overwriting viruses) always damage the executable beyond all 
  1205. hope of repair. Others modify the executable in rather complicated ways. Only 
  1206. viruses that are extremely well-behaved can be disinfected every time. 
  1207. Similarly, detection with system utilities has limited application. 
  1208.  
  1209. 4.7.2 Inoculation 
  1210.  
  1211.  
  1212.  
  1213. In some cases, an executable can be protected against a small number of viruses 
  1214. by "inoculation." This technique involves attaching the self-recognition code 
  1215. for the virus to the executable at the appropriate location. 
  1216.  
  1217. Since viruses may place their self-recognition codes in overlapping locations, 
  1218. the number of viruses that can be inoculated against simultaneously will be 
  1219. small. To make matters worse, a common way to create a new variant is to change 
  1220. the self-recognition code. Thus, this technique will often fail when tested by 
  1221. minor variants of the viruses inoculated against. 
  1222.  
  1223. Inoculation is no substitute for more robust anti-virus tools and procedures. 
  1224. It might be useful, though, if an organization has had recurring infections 
  1225. from a single virus. For example, after cleaning three or four outbreaks of a 
  1226. particular virus from a network of PCs, inoculation might be considered as a 
  1227. desperation measure. 
  1228.  
  1229.  
  1230.  
  1231.  
  1232. 5.0 Selecting Anti-Virus Techniques 
  1233.  
  1234. The selection of the appropriate class of anti-virus tools requires answers to 
  1235. the following set of questions: 
  1236.  
  1237.     o What is the probability of a virus infection?
  1238.     o What are the consequences of a virus infection?
  1239.     o What is the skill level of the users in your organization?
  1240.     o What level of support is available to the end-user?  
  1241.  
  1242.  
  1243. The first two questions address risk; security should always be commensurate 
  1244. with need. The third and fourth questions address the limitations of the tools 
  1245. and personnel. The answers will be different for each person or organization. 
  1246.  
  1247. Every organization is at some risk of virus infection. Virus infections can 
  1248. occur whenever electronic information is shared. Every organization shares 
  1249. information in some way and is a potential victim of a virus infection. Most 
  1250. organizations should have some tools available to detect such an infection. 
  1251.  
  1252. Personal computer users may benefit from tools to identify viruses, since so 
  1253. many viruses exist. Identification tools are not necessary where viruses are 
  1254. few or only theoretically possible. 
  1255.  
  1256. The use of removal tools is generally not required.(6)  It may be desirable in
  1257. situations where a single person or a small team is tasked with cleaning up
  1258. after an infection or where high connectivity can result in rapid spread of the
  1259. virus (such as networks). 
  1260.  
  1261. footnote (6): Exceptions, such as the DIR-2 PC virus, may be extremely difficult
  1262. to remove without appropriate tools. In this case, the only alternative to
  1263. removal tools is to format the disk.
  1264.  
  1265. 5.1 Selecting Detection Tools 
  1266.  
  1267. The first point to consider when selecting a detection product is the type of 
  1268. viruses likely to be encountered. Approximately 95 percent of all virus 
  1269. infections are accounted for by a small number of viruses. The viruses that 
  1270. constitute this small set can vary geographically. The common viruses can be 
  1271. distinct on different continents, due to the paths in which they travel. Of 
  1272. course, different hardware platforms will be at risk from different viruses. 
  1273.  
  1274. International organizations may be vulnerable to a larger set of viruses. This 
  1275. set may be obtained by merging the sets of viruses from different geographical 
  1276. regions where they do business. Organizations with contacts or installations in 
  1277. locations where virus writers are particularly active [Bon91] are also more
  1278. likely to encounter new viruses. 
  1279.  
  1280. Risk from new viruses is an important consideration. Scanners are limited by 
  1281. their design to known viruses; other detection tools are designed to detect any 
  1282. virus. If your organization is at high risk from new viruses, scanners should 
  1283. not be the sole detection technique employed. 
  1284.  
  1285. Another important criteria to consider is the number and type of errors 
  1286. considered tolerable. The tolerance for a particular type of error in an 
  1287. organization will vary according to the application. Table 1 shows the types of 
  1288. errors which should be expected. An estimate of the frequency that this class 
  1289. of error is encountered (Infrequent, Frequent, or Never) is also given for each 
  1290. class of tools and error type. All anti-virus tools are subject to errors, but 
  1291. their relative frequencies vary widely. Scanners probably have the lowest 
  1292. overall error rate. Checksummers do not produce false negatives. 
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304. The third and fourth items to consider when selecting anti-virus tools are the 
  1305. ease of use and administrative overhead required for each tool. Questions to 
  1306. consider are: 
  1307.  
  1308. What is the average skill level of your organization's end-user?
  1309. Does your organization have a support staff to assist user with more technical 
  1310. problems? 
  1311.  
  1312. Table 2 includes a general evaluation of the ease of use and administrative
  1313. overhead imposed by each class of tools. 
  1314.  
  1315. If several tools still appear to be candidates, consider the functionality of 
  1316. these tools beyond virus detection. Viruses are only one of the many threats to 
  1317. computer security. All detection tools except scanners have general security 
  1318. applications beyond viruses. Scanners are limited in application to viruses, 
  1319. but have the added functionality of virus identification. (7) Consider the added
  1320. functionality which is most needed by your organization and choose accordingly.
  1321. The alternatives are outlined in table 3. 
  1322.  
  1323. footnote (7) Some scanners can also detect known Trojan horses.
  1324.  
  1325. The final selection criteria to be considered is when does the tool detect 
  1326. viruses. Proactive detection tools allow the user to keep viruses off a system 
  1327. by testing incoming software. These tools only allow one chance of detecting a 
  1328. virus (upon initial introduction to the system). Active detection tools 
  1329. intervene during the replication phase itself. Reactive detection tools can be 
  1330. used any time after a virus has entered the system. Additionally, reactive 
  1331. tools are not as rigorous in their demands on system performance. Table 4 shows 
  1332. when these different tools detect viruses. 
  1333.  
  1334. 5.1.1 Combining Detection Tools 
  1335.  
  1336. The most complete protection will be obtained by combining tools which perform 
  1337. in radically different fashion and protect against different classes of 
  1338. viruses. For instance, when used together a scanner and a checksum program will 
  1339. protect against both known and unknown viruses. The scanner can detect known 
  1340. viruses before software is installed on the system. A virus can be modified to 
  1341. elude the scanner, but it will be detected by the checksum program. 
  1342.  
  1343. The two tools should have different "additional functionality" (see table ) 
  1344. to form the most comprehensive security package. For instance, the combination 
  1345. of a checksum program and an access control shell would also detect Trojan 
  1346. horses and enforce organizational security policy in addition to virus 
  1347. detection. On the other hand, adding a binary analyzer to a system that already 
  1348. employs checksumming would not provide additional functionality. 
  1349.  
  1350. If you must use two scanners, be sure that they use different search strings. A 
  1351. number of tools are based on published search strings; shareware tools commonly 
  1352. utilize the same public domain signature databases. Two different scanner 
  1353. engines looking for the same strings do not provide any additional protection 
  1354. of information. (8)
  1355.  
  1356. footnote (8): Algorithms for detection tend to be independently developed. 
  1357.  
  1358. 5.2 Identification Tools 
  1359.  
  1360. Currently, scanners are the only effective means of identifying viruses. As 
  1361. discussed in Section , the accuracy to which scanners identify viruses can 
  1362. vary. In the future, precise identification tools should offer greatly 
  1363. increased accuracy. 
  1364.  
  1365. 5.3 Removal Tools 
  1366.  
  1367. The most dependable technique for virus removal continues to be deletion of the 
  1368. infected executable and restoration from a clean backup. If backups are 
  1369. performed regularly and in a proper manner, virus removal tools may be 
  1370. neglected. 
  1371.  
  1372. In large organizations with high connectivity, automated removal tools should 
  1373. be obtained. Virus eradication through the removal of infected executables may 
  1374. require too much time and effort. Knowledge based tools will disinfect the 
  1375. largest number of different viruses, but proper identification of the virus 
  1376. prior to disinfection is critical. Even with knowledge based removal tools, 
  1377. disinfection of executables is not always reliable (see Sec. ). Test all 
  1378. disinfected executables to be sure they appear to execute properly. There is 
  1379. still a chance, however, that soft errors will occur. 
  1380.  
  1381. 5.4 Example Applications of Anti-Virus Tools 
  1382.  
  1383. This section provides hypothetical scenarios for the use of anti-virus tools. 
  1384. For each application, a battery of tools is suggested. There are several ways 
  1385. these tools can be applied to the same scenario; this text represents just one 
  1386. set of rational solutions. 
  1387.  
  1388. 5.4.1 Average End-User 
  1389.  
  1390. Detailed knowledge of the computer system is not required for the average 
  1391. end-user to perform one's job. Such a user should not be required to obtain 
  1392. detailed knowledge just to use anti-virus tools. This implies that scanners are 
  1393. probably most appropriate for the average end-users. Any other choice will 
  1394. require support from a technical support team or computer security incident 
  1395. response team. Of the remaining tools, the best option is a checksum program. 
  1396. By executing the checksum program regularly, for example weekly or monthly, 
  1397. infections will be detected within a limited timeframe. 
  1398.  
  1399.  
  1400.  
  1401. Another possibility is to relieve these users of the responsibility of 
  1402. detecting viruses entirely. If a technical support team is already providing 
  1403. other regular services (e.g., backup), the support team can use any combination 
  1404. of anti-virus tools deemed necessary. 
  1405.  
  1406. 5.4.2 Power Users 
  1407.  
  1408. Power users, those with detailed knowledge of their computer systems, will be 
  1409. better equipped to handle a larger variety of anti-virus tools. A power user is 
  1410. more able to determine whether a change detected by a checksum program is in 
  1411. fact legitimate. Additionally, a power user is going to be better equipped to 
  1412. configure some of the other tools, such as general purpose monitors and access 
  1413. control shells. 
  1414.  
  1415. 5.4.3 Constrained User 
  1416.  
  1417. If the user is constrained by policy to run a small set of programs against a 
  1418. known set of data files, an access control shell may be the appropriate choice. 
  1419. As an example, consider a data entry clerk who is permitted to run one 
  1420. particular database application and a basic set of utilities: mail, word 
  1421. processing, and a calendar program. An access control shell can be configured 
  1422. so that any changes to executable files by that user are deemed illegal 
  1423. operations. Additionally, if the set of executable files is restricted for the 
  1424. user, it is difficult to introduce a virus into the system. The virus is unable 
  1425. to spread if it can never be executed. 
  1426.  
  1427. 5.4.4 Acceptance Testing 
  1428.  
  1429. Acceptance testing is a means by which software is verified to be 
  1430. "virus-free" before it is put into daily use. This is usually accomplished by 
  1431. placing the software on an isolated system and performing tests that are 
  1432. intended to mimic every day use. A combination of anti-virus tools is required 
  1433. to adequately perform this function, which must detect both known and future 
  1434. viruses. In particular, a checksum program is most useful. Even if the trigger 
  1435. conditions for the payload are not met, the virus will still most likely 
  1436. attempt to replicate. It is the result of the replication process that a 
  1437. checksum program detects. 
  1438.  
  1439. 5.4.5 Multi-User Systems 
  1440.  
  1441. Although viruses found in the wild have been limited to personal computer 
  1442. systems, viruses for multi-user systems have been demonstrated in a number of 
  1443. laboratory experiments. Therefore, the potential exists for viruses on 
  1444. multi-user systems. As a result, it is prudent to ensure that the security 
  1445. measures taken on a multi-user system address viruses as well. 
  1446.  
  1447. Currently, administrators of multi-user systems have a limited number of 
  1448. options for virus protection. Administrators of these systems cannot use 
  1449. monitors or scanners. Since there are no known viruses, there are no signatures 
  1450. to search for or expected virus behavior to detect. An option that is available 
  1451. to administrators of multi-user systems is change detection. Many of these 
  1452. systems are already equipped with a checksum program. Access control shells are 
  1453. another possibility for many systems. Like access control, though, they are not 
  1454. usually designed for virus detection. 
  1455.  
  1456.  
  1457.  
  1458. 5.4.6 Network Server 
  1459.  
  1460. Network servers present an interesting problem. They can support a wide variety 
  1461. of machines, but may run an entirely different operating system. For instance, 
  1462. a UNIX server may support a network of PC and Macintosh workstations. 
  1463.  
  1464. The UNIX system cannot be infected by the Jerusalem-B or WDEF viruses, but 
  1465. infected files may be stored on its disk. Once the network server has infected 
  1466. files on it, the workstations it supports will rapidly become infected as well. 
  1467.  
  1468. Since the viruses never execute on the server, the administrator is limited to 
  1469. static detection techniques such as scanners or change detectors. The nature of 
  1470. network servers allows these tools to be run automatically during off-peak 
  1471. periods. 
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478. 6.0  Selecting the Right Tool 
  1479.  
  1480. Once an anti-virus technique has been selected, an appropriate tool from that 
  1481. class must be selected. This section presents several features to be considered 
  1482. when selecting a specific product from a class of tools. 
  1483.  
  1484. 6.1 Selecting a Scanner 
  1485.  
  1486. Scanners are implemented in several forms. Hardware implementations, available 
  1487. as add-on boards, scan all bus transfers. Software implementations include both 
  1488. non-resident and resident software for the automatic scanning of diskettes. 
  1489.  
  1490. Non-resident software is sufficiently flexible to meet most needs; however, to 
  1491. be effective the user must execute the software regularly. Hardware or resident 
  1492. software are better choices for enforcing security policy compliance. Resident 
  1493. scanners may be susceptible to stealth viruses. 
  1494.  
  1495. Although most scanners use similar detection techniques, notable differences 
  1496. among products exist. Questions that potential users should consider when 
  1497. selecting a scanner include: 
  1498.  
  1499.   o    How frequently is the tool updated? A scanner must be updated regularly 
  1500.     to remain effective. How frequently updates are needed depends on which 
  1501.     platform the scanner is used. Update frequency should be proportional
  1502.     to the rate at which new viruses are discovered on that platform.
  1503.   o    Can the user add new signatures? This can be very important if a
  1504.     particularly harmful virus emerges between updates.
  1505.   o    Does the tool employ algorithmic detection? For which viruses does the
  1506.     tool use algorithmic detection? Algorithmic detection is preferable to 
  1507.     the use of multiple signatures to detect polymorphic viruses.
  1508.   o    How efficient is the tool? Users are less likely to use a slow scanner.
  1509.     There can be a significant difference in performance between different
  1510.     search algorithms.
  1511.   o    Does the vendor develop their own virus signatures, or are the
  1512.     signatures based on published search strings? There is nothing
  1513.     particularly wrong with published search strings, but it indicates the
  1514.     level of resources the vendor has committed to the product.
  1515.   o    What is the level of documentation? Some packages arrive with large
  1516.     fact-filled binders; other packages are a single floppy disk with a few
  1517.     ASCII files describing installation and parameters. 
  1518.  
  1519. 6.2 Selecting a General Purpose Monitor 
  1520.  
  1521. General purpose monitors are usually implemented in software; however, hardware 
  1522. implementations do exist. Hardware versions may be more difficult to 
  1523. circumvent, but they are not foolproof. The following questions should be 
  1524. considered when selecting a general purpose monitor: 
  1525.  
  1526.   o    How flexible are the configuration files? Can different parts of the 
  1527.     monitor be disabled? Can the monitor be configured so that certain
  1528.     executables can perform suspect actions? For example, a self-modifying
  1529.     executable will still need to be able to modify itself.
  1530.   o    What types of suspect behavior are monitored? The more types of behavior
  1531.     monitored, the better. A flexible configuration to select from the set
  1532.     of features is desirable.
  1533.   o    Can the monitor be reconfigured to scan for additional virus techniques?
  1534.     Are updates provided as new virus techniques are discovered? 
  1535.  
  1536.  
  1537. 6.3 Selecting an Access Control Shell 
  1538.  
  1539. Access control shells may be implemented in software or as hybrid packages with 
  1540. both hardware and software components. If encryption modules are required, they 
  1541. can be designed as software or hardware. The following questions should be 
  1542. considered when selecting an access control shell: 
  1543.  
  1544.   o    What type of access control mechanism does the shell provide and does
  1545.     it fit your security policy?
  1546.   o    If encryption is employed, what is the strength of the algorithms used?
  1547.     In general, publicly scrutinized algorithms are to be preferable to
  1548.     secret, proprietary algorithms where you are depending on the secrecy of
  1549.     the algorithm, rather than secrecy of the key.
  1550.   o    How strong are the identification and authentication mechanisms?
  1551.     provides basic criteria for analyzing the strength of these mechanisms.
  1552.   o    Are the passwords themselves adequately protected? Passwords should
  1553.     never be stored in cleartext. 
  1554.  
  1555.  
  1556. 6.4 Selecting a Change Detector 
  1557.  
  1558. Due to cost considerations, change detection tools are usually implemented in 
  1559. software. However, hardware implementations do speed the calculation of 
  1560. cryptographic checksums. The following questions should be considered when 
  1561. selecting a change detector: 
  1562.  
  1563.  
  1564.  
  1565.   o    What kind of checksum algorithm does the tool use - CRC or
  1566.     cryptographic? CRC algorithms are faster. Cryptographic checksums are
  1567.     more secure.
  1568.   o    Can the tool be configured to skip executables that are known to be 
  1569.     self-modifying? Consistent false positives will eventually cause the
  1570.     end-user to ignore the reports.
  1571.   o    How are the checksums stored? Some tools create a checksum file for
  1572.     every executable, which tends to clutter the file system and wastes
  1573.     disk space. Other tools store all checksums in a single file. Not only 
  1574.     is this technique a more efficient use of disk space, but it also
  1575.     allows the user to store the checksum file off-line (e.g., on a floppy). 
  1576.  
  1577. 6.5 Selecting an Identification Tool 
  1578.  
  1579. The following questions should be considered when selecting a scanner for 
  1580. identification: 
  1581.  
  1582.   o    How many viruses does it detect? How many different viruses are 
  1583.     identified? The former asks how many different viruses are detected,
  1584.     whereas the latter asks how many different names are assigned to these
  1585.     different viruses. If a scanner is using signature strings, signatures
  1586.     can appear in variants. These questions will give some understanding
  1587.     regarding the level of precision provided by a particular tool.
  1588.   o    What names are used by the identification tool? Many viruses have
  1589.     numerous "aliases," so different scanners will produce different names
  1590.     for the same infection. This is especially true with IBM PC viruses.
  1591.     The identification feature of the scanner is only useful if the scanner
  1592.     comes with a virus catalog or uses the same nameset as an available
  1593.     catalog. 
  1594.  
  1595.  
  1596. Precise identification tools will be more useful when they become available, 
  1597. although the same limitations regarding a virus information catalog will still 
  1598. apply. 
  1599.  
  1600. 6.6 Selecting a Removal Tool 
  1601.  
  1602. Removal tools are more difficult to evaluate, but the following items may be of 
  1603. assistance: 
  1604.  
  1605.   o    Ask for a list of viruses that can be removed, and the general level of 
  1606.     accuracy. (For example, "75 of disinfections will result in a working 
  1607.     executable.") Ask for a list of viruses that cannot be removed. Use
  1608.     the ratio for the basis of a rough comparison.
  1609.   o    Get a scanner and removal tool that work from the same naming space. The
  1610.     removal tool works on the basis of the virus you name. You need to
  1611.     supply it with the name by which it knows the virus. Matched
  1612.     identification and removal tools are required to make it work. 
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623. 7.0 For Additional Information 
  1624.  
  1625. The National Institute of Standards and Technology's Computer Security Division 
  1626. maintains an electronic bulletin board system (BBS)  focusing on information 
  1627. systems security issues. It is intended to encourage sharing of information 
  1628. that will help users and managers better protect their data and systems. The 
  1629. BBS contains the following types of information specific to the virus field: 
  1630.  
  1631.  
  1632.  
  1633.   o    alerts regarding new viruses, Trojan horses, and other threats; 
  1634.   o    anti-virus product reviews (IBM PC and Macintosh);
  1635.   o    technical papers on viruses, worms, and other threats;
  1636.   o    anti-virus freeware and shareware;
  1637.   o    and archives of the VIRUS-L forum. 
  1638.  
  1639.  
  1640.  
  1641. Occasionally, the alerts contain signature strings to update scanners. The 
  1642. anti-virus product reviews examine and evaluate specific tools. The papers 
  1643. provide an extensive body of basic knowledge regarding these threats. The 
  1644. VIRUS-L forum has served as a world-wide discussion forum for the exchange of 
  1645. information regarding viruses since April 1988. The past issues are available 
  1646. for download. 
  1647.  
  1648. Access Information 
  1649.  
  1650. The NIST Computer Security Resource Center BBS can be access via dial-up or 
  1651. through the Internet via telnet: 
  1652.  
  1653.  
  1654.  
  1655.     Dial-up access: (301) 948-5717 (2400 baud or less)
  1656.              (301) 948-5140 (9600 baud) 
  1657.  
  1658.     Internet: telnet cs-bbs.ncsl.nist.gov (129.6.54.30)  
  1659.  
  1660.  
  1661. References
  1662.  
  1663. [BP92] Lawrence E. Bassham III and W. Timothy Polk. "Precise Identification
  1664. of Computer Viruses", in the Proceedings of the 15th National Computer
  1665. Security Conference, 1992.
  1666.  
  1667. [Sku92] Fridrik Skulason.  "The Mutation Engine - The Final Nail?", Virus
  1668. Bulletin, pages 11-12, April 1992.
  1669.  
  1670. [Rad91] Yisrael Radai. "Checksumming Techniques for Anti-viral Purposes",
  1671. In "Proceedings of the First International Virus Bulletin Conference", 1991.
  1672.  
  1673. [Bon91] Vesselin Bontchev.  "The Bulgarian and Soviet Virus Factories", In
  1674. "Proceedings of the First International Virus Bulletin Conference", 1991.
  1675.  
  1676. [Coh92] Dr. Frederick Cohen. "Current Best Practices Against Computer Viruses
  1677. With Examples From The DOS Operating System", In "Proceedings of the Fifth
  1678. International Computer Virus & Security Conference", 1992.
  1679.  
  1680. [Sol92] Dr. Alan Solomon. "Mechanisms of Stealth", In "Proceedings of the Fifth
  1681. International Computer Virus & Security Conference", 1992.
  1682.  
  1683. [FIPS112] Password Usage. Federal Information Processing Standard (FIPS PUB)
  1684. 112, National Institute of Standards and Technology, May 1985.
  1685.  
  1686. [WC89] John Wack and Lisa Carnahan. "Computer Viruses and Related Threats:
  1687. A Management Guide", Special Publication 500-166. National Institute of
  1688. Standards and Technology. August, 1989.
  1689.  
  1690. Gustavus J. Simmons, editor.  "Contemporary Cryptology: The Science of
  1691. Information Integrity", IEEE Press, 1992.
  1692.  
  1693.  
  1694. Index
  1695.  
  1696. see hardcopy.
  1697.  
  1698.  
  1699. Tables
  1700.  
  1701.  
  1702.  
  1703. Error       Scanner           Binary    Generic        Access
  1704. Type            Checksum   Analysis    Monitor        Shell
  1705. =============================================================================
  1706.  
  1707. False        I       F        F       F        F
  1708. Positive
  1709.  
  1710.  
  1711. False        I       N        F       F        F
  1712. Negative
  1713.  
  1714. I= Infrequent
  1715. F= Frequent
  1716. N= Never
  1717.  
  1718.             Table 1
  1719.  
  1720.             Scanner           Binary    Generic        Access
  1721. Criteria        Checksum   Analysis    Monitor        Shell
  1722. =============================================================================
  1723.  
  1724. Ease of        VG       A        P       P        A
  1725. Use
  1726.  
  1727.  
  1728. Admin.        L       L        H       H        H
  1729. Overhead
  1730.  
  1731. VG = Very Good
  1732. A = Average
  1733. P = Poor
  1734. L = Low
  1735. H = High
  1736.  
  1737.             Table 2
  1738.  
  1739.  
  1740. Tool        Add'l Functionality
  1741. =============================================
  1742.  
  1743. Scanner        Identification
  1744.  
  1745. Checksum    Detect known Trojan horses
  1746.  
  1747. Binary        Detect Trojan Horses
  1748. Analysis
  1749.  
  1750. Generic        Detect Trojan horses
  1751. Monitor
  1752.  
  1753. Access        Enforcing organizational
  1754. Shell        security policy
  1755.  
  1756.  
  1757.             Table 3
  1758.  
  1759. Point of   Scanner           Binary    Generic        Access
  1760. Detection        Checksum   Analysis    Monitor        Shell
  1761. =============================================================================
  1762.  
  1763. Static        YES       No        Yes       No        No
  1764. Executable
  1765.  
  1766.  
  1767. Replication    No       No        No       Yes        Yes
  1768. Phase
  1769.  
  1770. After        Yes       Yes        Yes        No        Yes
  1771. Infection
  1772.  
  1773.             Table 4
  1774.